package cn.atzxc.qy.controller;

import cn.atzxc.qy.domain.ResponseResult;
import cn.atzxc.qy.domain.Rider;
import cn.atzxc.qy.mapper.RiderMapper;
import cn.atzxc.qy.service.RiderService;
import cn.atzxc.qy.utils.JwtUtil;
import io.jsonwebtoken.Claims;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

/**
 * 骑手认证处理函数
 * 1.当点击了骑手认证后，从之前的redis中拿出用户认证信息，判断用户是否已经认证
 *   如果已经认证，发送异步请求，根据token解析出用户ID，然后从骑手信息表中查询出骑手认证信息，并显示到骑手界面
 *   如果为审核中，也是发送异步请求到后端，和1一样，按钮从提交审核变成审核中
 *   如果为审核失败，也是发送异步请求后端，和1一样，按钮从提交审核变成修改认证信息，当点击后跳转到认证界面，填写信息。
 *   如果为未认证，则直接跳转到认证界面。
 */


@RestController
@RequestMapping("/user/rider")
public class RiderController {

    @Autowired
    private RiderService riderService;

    /**
     * 用户已经认证
     * 根据token解析出用户ID，然后从骑手信息表中查询出骑手认证信息，并返回给前端，用来进行前端渲染
     */
    @GetMapping("/getRiderInfo")
    public ResponseResult getRiderInfo(@RequestHeader("token") String token) throws Exception {

        Rider riderInfo = riderService.getRiderInfo(token);
        //返回骑手信息
        return new ResponseResult(200,"查询成功",riderInfo);
    }
    /**
     * 获取认证状态
     */
    @GetMapping("/getUserAuthState")
    public ResponseResult getUserState(@RequestHeader("token") String token) throws Exception {
        Rider rider = riderService.getUserAuthState(token);
        System.out.println("查询到的骑手信息为："+rider);
//        String authStatus = rider.getAuthStatus();
//        System.out.println("认证状态为："+authStatus);
        return new ResponseResult(200,"查询成功",rider);
    }
    //提交认证
    @PostMapping("/ridersubmit")
    public ResponseResult submitRider(@RequestHeader("token") String token,
                                      @RequestBody Rider rider) throws Exception {
        System.out.println("插入的骑手信息是："+rider);
        int i = riderService.submitRider(token,rider);
        if (i>0){
            return new ResponseResult(200, "提交成功");
        }else {
            return new ResponseResult(400, "提交失败");
        }

    }
    //重新提交
    @PostMapping("/resubmit")
    public ResponseResult resubmit(@RequestHeader("token") String token,
                                      @RequestBody Rider rider) throws Exception {
        System.out.println("更新的骑手信息是："+rider);
        int i = riderService.resubmit(token,rider);
        if (i>0){
            return new ResponseResult(200, "提交成功");
        }else {
            return new ResponseResult(400, "提交失败");
        }

    }




}
